package com.itheima.aopAdvice;


import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;

public class AopAdvice01 {

    //①第一种方式获取参数
//    public void before(JoinPoint jp)throws Exception{
//        Object[] args = jp.getArgs();
//        System.out.println(args[0]);
//        System.out.println("前置方法运行了");
//    }
//    ②第二种方式获取参数
//    public void before(int a)throws Exception{
//        System.out.println(a);
//        System.out.println("前置方法运行了");
//    }
//        ①获取返回值
//    public void afterReturning(Object rt){
//        System.out.println(rt);
//        System.out.println("返回值方法运行了");
//    }
//    public Object around(ProceedingJoinPoint p){
//        Object num=null;
//        try {
//            System.out.println("前置通知");
//            num = p.proceed();
//            System.out.println("后置通知");
//        } catch (Throwable throwable) {
//            String message = throwable.getMessage();
//            System.out.println(message);
//        }finally {
//            System.out.println("最终通知");
//        }
//        return num;
//    }

    public void afterThrowing(Throwable t){
        System.out.println(t.getMessage());
        System.out.println("抛出异常");
    }
}
